﻿Imports System.Data.SqlClient
Public Class Conexion
    Private conexion As SqlConnection
    Private comandos As SqlCommand
    Private dataSet As New DataSet
    Private dataAdapter As SqlDataAdapter
    Public Sub New()
        Try
            conexion = New SqlConnection("Data Source=(local)\SQLEXPRESS; Initial Catalog=pruebaModulos; Integrated Security=true")
            conexion.Open()
            dataAdapter = New SqlDataAdapter
        Catch ex As Exception
            MsgBox("Error en la conexión : " & ex.Message)
        End Try
    End Sub
    Public Function llenarComboAsig() As DataSet
        Try
            dataAdapter = New SqlDataAdapter("select * from Asignatura", conexion)
            dataSet.Tables.Clear()
            dataAdapter.Fill(dataSet, "Asignatura")
            Return dataSet
        Catch ex As Exception
            MsgBox("error en llenarComboAsig : " & ex.Message)
        End Try
        Return dataSet
    End Function

    'Public Sub addAsignatura(ByVal asignatura As String)
    '    Try
    '        Dim id As Integer
    '        id = buscarId("select id from Asignatura")
    '        Dim comandoAdd As String = "insert into Asignatura(id,nombre) values(" _
    '                                & (id + 10) & ",'" & asignatura & "');"
    '        comandos = New SqlCommand(comandoAdd, conexion)
    '        comandos.ExecuteNonQuery()
    '        myAsignatura.myId = id + 10
    '        myAsignatura.myNombre = asignatura
    '        MsgBox("Guardado Satisfactoriamente!")
    '        My.Computer.FileSystem.CreateDirectory("C:\Archivos BookVoice\" & asignatura)
    '    Catch ex As Exception
    '        MsgBox("Error AddAsignatura : " & ex.Message)
    '    End Try
    'End Sub

    Public Function buscarId(ByVal sql As String) As Integer
        Try
            Dim numeroFilas As Integer
            dataAdapter = New SqlDataAdapter(sql, conexion)
            dataSet.Tables.Clear()
            dataAdapter.Fill(dataSet)
            For i As Integer = 0 To dataSet.Tables(0).Rows.Count - 1
                numeroFilas = dataSet.Tables(0).Rows(i).Item(0)
            Next
            Return numeroFilas
        Catch ex As Exception
            MsgBox("Buscar ID! .. " & ex.Message)
            Return 0
        End Try
    End Function

    Public Function mostrarArchivosAgenda(ByVal sql As String) As DataSet
        dataAdapter = New SqlDataAdapter(sql, conexion)
        dataSet.Tables.Clear()
        dataAdapter.Fill(dataSet)
        Return dataSet
    End Function

    Public Sub close()
        conexion.Close()
        conexion.Dispose()
    End Sub

    Public Function abrirConRuta(ByVal sql As String) As String
        Dim texto As String
        dataAdapter = New SqlDataAdapter(sql, conexion)
        dataSet.Tables.Clear()
        dataAdapter.Fill(dataSet)
        texto = AbrirArchivo(dataSet.Tables(0).Rows(0).Item(0).ToString)
        Return texto
    End Function

    'Public Sub guardarEnBase()
    '    Try
    '        Dim id_archivo As Integer = buscarId("select id from Archivo")
    '        Dim url As String = "C:\Archivos BookVoice\" & myAsignatura.myNombre & "\" & _
    '            myAsignatura.myId & "_" & id_archivo + 101 & "_NombreArchivo.txt"
    '        Dim comandoInsert As String = "insert into Archivo(id,id_asignatura,id_usuario,nombre,fecha,url)" & _
    '            " values(" & id_archivo + 101 & "," & myAsignatura.myId & ",1,'NOMBRE_ARCHIVO', '" & _
    '            Date.Today & "','" & url & "')"
    '        comandos = New SqlCommand(comandoInsert, conexion)
    '        comandos.ExecuteNonQuery()
    '        myArchivo.myUrl = url
    '        myArchivo.myId = id_archivo + 101
    '        guardaFisicoTrans(MainMicrosoft.txtTrasn.Text, url)
    '    Catch ex As Exception
    '        MsgBox("GuardarEnBase : " & ex.Message)
    '    End Try
    'End Sub

    'Public Sub generarApunte()
    '    Dim id As Integer = buscarId("select id from Apunte")
    '    Dim micomando As String = "insert into Apunte(id,id_archivo,nombre,fecha,url) values(" & id + 10001 & _
    '        "," & myArchivo.myId & ",'Apuntexx','" & Date.Today & "','" & myApunte.rutaTotal & "')"
    '    comandos = New SqlCommand(micomando, conexion)
    '    comandos.ExecuteNonQuery()

    'End Sub
    Public Function getAsignatura(ByVal id As String) As String
        dataAdapter = New SqlDataAdapter("select nombre from Asignatura where id =" & CInt(id), conexion)
        dataSet.Tables.Clear()
        dataAdapter.Fill(dataSet)
        Return (dataSet.Tables(0).Rows(0).Item(0).ToString)
    End Function
    'Public Function getUrl(ByVal idAs As String)
    '    'Dim a() As String = idAs.Split(vbCrLf)
    '    'MsgBox("get url " & idAs)
    '    Dim miurl As String
    '    dataAdapter = New SqlDataAdapter("select url from Archivo where id=" & CInt(idAs), conexion)
    '    dataSet.Tables.Clear()
    '    dataAdapter.Fill(dataSet)
    '    miurl = dataSet.Tables(0).Rows(0).Item(0).ToString
    '    Return miurl
    'End Function

    'Public Sub addApunteG(ByVal id_archTrans As String, ByVal texto As String)
    '    Dim s() As String = id_archTrans.Split(vbCrLf)
    '    Dim miurl As String = getUrl(s(0))
    '    myArchivo.myUrl = miurl
    '    Dim id As Integer = (buscarId("Select id from Apunte") + 10001)
    '    myApunte.myUrl = "AP" & s(0) & "-" & id & ".txt"
    '    myApunte.rutaTotal = miurl.ToString & "AP-" & id & "\" & myApunte.myUrl
    '    Dim micomando As String = "insert into Apunte(id,id_archivo,nombre,fecha,url) values(" & _
    '        id & "," & CInt(id_archTrans) & ",'Apuntexx','" & Date.Today & "','" & myApunte.rutaTotal & "')"
    '    comandos = New SqlCommand(micomando, conexion)
    '    comandos.ExecuteNonQuery()
    '    My.Computer.FileSystem.CreateDirectory(miurl.ToString & "AP-" & id & "\")
    '    My.Computer.FileSystem.WriteAllText(myApunte.rutaTotal, texto, True)
    'End Sub
    Public Sub agregarApunte()
        'id archivo id asignatura ambos para crear el directorio
        'despues de crear el directorio, se busca el último id del apunte y se le agrega +1
        'se inserta en la bd
        My.Computer.FileSystem.CreateDirectory("C:\Archivos BookVoice\" & myAsignatura.myNombre & "\" & myAsignatura.myId & "_" & myArchivo.myId.ToString & "\")
        myApunte.myId = (CInt(buscarId("SELECT id FROM Apunte")) + 1).ToString

        myApunte.myUrl = "C:\Archivos BookVoice\" & myAsignatura.myNombre & "\" & myAsignatura.myId & "_" & myArchivo.myId.ToString & "\" & myArchivo.myId.ToString & "_" & myApunte.myId & ".txt"

        Dim micomando As String = "insert into Apunte(id,id_archivo,nombre,fecha,url) values(" & myApunte.myId & _
        "," & myArchivo.myId & ",'Apuntexx','" & Date.Today & "','" & myApunte.myUrl & "')"
        comandos = New SqlCommand(micomando, conexion)
        comandos.ExecuteNonQuery()
    End Sub
End Class
